H |
您所在的位置:网站首页 › 三星2440 仿真器 › H |
H-JTAG是H-JTAG团队开发的一款自主原创的ARM仿真套件, H-JTAG开发套件主要包括了: H-JTAG SERVER 调试软件, H-FLASHER 烧写软件,及高速H-JTAG USB 仿真器。 其支持各种ARM处理器: ARM7, ARM9, ARM11, XSCALE (包括最新的PXA300系列), CORTEX-M3。无缝连接各种主流IDE:ADS, SDT, IAR, KEIL, RVDS。支持各种WINDOWS平台 NT/2000/XP/VISTA。 本文就如何利用H-JTAG把程序烧写到友善之臂mini2440开发板进行详细的说明。作为友善之臂的《mini2440使用说明书》的一种补充和修正。 2 关于Nand flash 和nor flash S3C2440支持两种方式的启动:Nor Flash启动和Nand Flash启动。Nor Flash和Nand Flash都是非易失性存储器,Nor Flash的特点是芯片内执行,程序可以直接在其中运行,而不必将程序读取到RAM中运行。 Nor Flash虽然具有这个优点,但是它的性价比远低于Nand Flash,因而很多系统采用Nand Flash启动。Nand Flash的特点是采用非线性存储模式,程序无法在其中运行,它只能作为程序或数据的存储载体,存储在其中的程序只能先拷贝到RAM中才能运行。 从Nor Flash启动时,与nGCS0相连的Nor Flash就被映射到nGCS0片选的空间,其地址被映射为0x00000000;从Nand Flash启动时,S3C2440芯片内部自带的一块容量为4K的被称为“Steppingstone”(“起步阶石”)的BootSRAM被映射到nGCS0片选的空间,其地址被映射为0x00000000。当系统上电或复位时,程序会从0地址处开始执行,因此我们编写的启动代码要确保存储在0地址处。 当启动方式为Nor Flash启动时,没有额外需要考虑的问题,因为这种情况下程序在系统启动前就存储在Nor Flash中,我们只要保证将启动代码保存在Nor Flash开始的位置即可,系统上电或复位时,0地址处的启动代码就会被执行。 在启动方式为Nand Flash启动的情况下,系统启动前所有的程序存储在Nand Flash中,系统的启动过程稍微有点复杂:系统上电或复位时,0地址处为S3C2440内部自带的BootSRAM,启动前里面没有任何存储内容,启动后S3C2440先通过硬件机制将Nand Flash前4K的内容拷贝至其中,然后再运行里面的程序(从0地址处)。 这种情况下我们需要保证将启动代码保存在Nand Flash开始的位置,并且启动代码的大小要小于4K。如果系统的所有程序在编译链接后的大小小于4K,那在系统的启动代码中无需考虑将程序从Nand Flash搬运到SDRAM这个问题,因为所有的程序在启动时即全部由Nand Flash拷贝至BootSRAM,程序在BootSRAM中运行即可;如果系统的所有程序在编译连接后的大小大于4K,那在系统的启动代码中需要包含一段将系统的全部程序从Nand Flash搬运到SDRAM的代码,因为系统启动时只将Nand Flash的前4K拷贝到BootSRAM中,还有部分程序保存在Nand Flash中, Nand Flash中是无法运行程序的,需要将所有程序拷贝至SDRAM并在其中运行,所以在系统的启动代码中要包含这段有关程序拷贝的代码,并在所有程序拷贝完成后使程序跳转到SDRAM中运行。 也就是说在启动方式为Nand Flash启动的情况下,因为Nand Flash的特性,程序需要涉及到两次的搬移,一次是从Nand Flash搬移到BootSRAM,搬运的程序量大小是4K,目的是使系统能够启动;第二次搬运是从Nand Flash搬运到系统的SDRAM,如果系统的所有程序量小于4K,这一步可以省略,搬运的程序量大小是系统的所有程序,目的是使程序在SDRAM中运行。第一次搬运是S3C2440通过硬件机制自动实现的,我们无需干预,第二次则需要我们程序员来实现。 Mini2440开发板带有两种FLASH: Nor Flash和Nand Flash。按照开发板的设计目的以及很多实际的应用,系统一般选择从Nand FLASH启动,但厂家为了方便大家学习还是保留了Nor Flash,我们也可以将启动代码烧写至Nor Flash,并从中启动。两种启动方式的启动代码稍有不同,不同点主要在上述的第二次程序拷贝。启动方式可通过拨键开关S2来选择。 3 关于Supervivi 首先了解一下BIOS。BIOS是英文“Basic Input Output System”的缩略语,直译过来后中文名称就是“基本输入输出系统”。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。 Mini2440开发板采用的 BIOS 是基于三星原来的bootloader 之vivi 改进而来,名为Supervivi,它采用功能菜单的方式,并可以和原来的命令交互模式互相切换。 Supervivi 可以使用JTAG 板(一般借助H-JTAG 软件)直接烧写入Nor Flash 中使用,也可以直接烧入Nand Flash 中运行。当烧入Nor Flash 并从中时,将会出现菜单模式;当烧入Nand Flash 并从中运行时,按下开发板上的任意一个按键,也可以出现菜单模式,否则会启动开发板上预装的操作系统(Linux/WindowsCE)。 Supervivi 的菜单模式主要为烧写系统和调试而用,也可以设置参数和进行分区等,它采用USB 下载的方式,因此搭建烧写环境极为简单,并且下载速度快,使用十分方便。 如果 Supervivi 被烧写入Nor Flash(默认),不仅可以用它来方便的下载更新linux 和WinCE 系统,还可以烧写其他任何支持Nand Flash 启动的操作系统和非操作系统到NandFlash,如uCos2,U-boot,Nboot,2440test 等,然后再选择系统从Nand Flash 启动,这样就可以使用各种各样的系统了。 4 板载JTAG接口与HJTAG连接 H-JTAG USB 仿真器的采用标准的20 针JTAG 接口,板载JTAG接口是采用10针,两者信号的定义如图1和图2所示。 (3)设置Flash 型号并烧写BIOS 1)点H-JTAG 主菜单的Flasher-> Start H-Flasher 打开H-Flasher 烧写程序窗口,在窗口菜单中选择 “Load”,出现打开文件选择窗口,选择上面步骤复制H-Flasher_SST39VF1601.hfc。选择后,得到如图6所示。点击左侧导航栏Configuration选项,出现的界面如图7所示,从中可以发现里面的设置是固定的。 2)点 H-Flasher 左侧导航栏的“Programming”,点击Check按钮,出现如图界面如图8所示。 转载论文:基于mini2440的H-JTAG烧写程序的方法.陈海生 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |